package com.lining.orangeservice.repository;

import com.lining.orangeservice.entity.abstractentity.Order;
import com.lining.orangeservice.entity.dto.OrderQuery;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 订单仓储接口
 */
@Repository
public interface OrderRepository {
    
    /**
     * 保存订单
     * @param order 订单对象
     * @return 保存后的订单
     */
    Order save(Order order);
    
    /**
     * 根据ID查找订单
     * @param orderId 订单ID
     * @return 订单对象
     */
    Order findById(Long orderId);
    
    /**
     * 根据用户ID和查询条件查找订单列表
     * @param userId 用户ID
     * @param query 查询条件
     * @return 订单列表
     */
    List<Order> findByUserId(Long userId, OrderQuery query);
}